﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;

namespace Com.JunCaiSoft.API.WXWork.Dto
{
    /// <summary>
    /// 员工详情
    /// </summary>
    public class EmployerDetail
    {
        /// <summary>
        /// 成员UserID。对应管理端的帐号，企业内必须唯一。不区分大小写，长度为1~64个字节。只能由数字、字母和“_-@.”四种字符组成，且第一个字符必须是数字或字母。
        /// </summary>
        public virtual String userid { get; set; }
        /// <summary>
        /// 成员名称。长度为1~64个utf8字符
        /// </summary>
        public virtual String name { get; set; }
        /// <summary>
        /// 成员别名。长度1~32个utf8字符
        /// </summary>
        public virtual String alias { get; set; }
        /// <summary>
        /// 手机号码。企业内必须唯一，mobile/email二者不能同时为空
        /// </summary>
        public virtual String mobile { get; set; }
        /// <summary>
        /// 成员所属部门id列表,不超过100个
        /// </summary>
        public virtual List<Int32> department { get; set; }
        /// <summary>
        /// 部门内的排序值，默认为0，成员次序以创建时间从小到大排列。个数必须和参数department的个数一致，数值越大排序越前面。有效的值范围是[0, 2^32)
        /// </summary>
        public virtual List<Int64> order { get; set; }
        /// <summary>
        /// 职位
        /// </summary>
        public virtual String position { get; set; }
        /// <summary>
        /// 性别
        /// </summary>
        public virtual String gender { get; set; }
        /// <summary>
        /// Email
        /// </summary>
        public virtual String email { get; set; }
        /// <summary>
        /// 个数必须和参数department的个数一致，表示在所在的部门内是否为上级。1表示为上级，0表示非上级。在审批等应用里可以用来标识上级审批人
        /// </summary>
        public virtual List<Int32> is_leader_in_dept { get; set; }
        /// <summary>
        /// 启用/禁用成员。1表示启用成员，0表示禁用成员
        /// </summary>
        public virtual Int32 enable { get; set; }
        /// <summary>
        /// 扩展属性
        /// </summary>
        public virtual String extattr { get; set; }
        /// <summary>
        /// 是否邀请该成员使用企业微信（将通过微信服务通知或短信或邮件下发邀请，每天自动下发一次，最多持续3个工作日），默认值为true。
        /// </summary>
        public virtual Boolean to_invite { get; set; }
        /// <summary>
        /// 成员对外属性，字段详情见对外属性
        /// </summary>
        public virtual String external_profile { get; set; }
        /// <summary>
        /// 对外职务，如果设置了该值，则以此作为对外展示的职务，否则以position来展示。长度12个汉字内
        /// </summary>
        public virtual String external_position { get; set; }
        /// <summary>
        /// 地址。长度最大128个字符
        /// </summary>
        public virtual String address { get; set; }
        /// <summary>
        /// 主部门
        /// </summary>
        public virtual String main_department { get; set; }
    }
}
